'\" te
.\" Copyright (c) 2004, Sun Microsystems, Inc., All Rights Reserved
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH USB_DEV_DESCR 9S "Jan 5, 2004"
.SH NAME
usb_dev_descr \- USB device descriptor
.SH SYNOPSIS
.nf
#include <sys/usb/usba.h>
.fi

.SH INTERFACE LEVEL
illumos DDI specific (illumos DDI)
.SH DESCRIPTION
The \fBusb_dev_descr_t\fR device descriptor defines device-wide attributes.
Please refer to Section \fI9.6.1\fR of the \fIUSB 2.0\fR specification. The
\fIUSB 2.0\fR specification is available at \fIwww.usb.org\fR.
.sp
.LP
The device descriptor is retrieved from a USB device during device enumeration
and can be accessed via \fBusb_get_dev_data\fR(9F).
.sp
.LP
A device descriptor contains the following fields:
.sp
.in +2
.nf
 uint8_t     bLength             Size of this descriptor,
                                  in bytes.

  uint8_t     bDescriptorType     Set to USB_DESCR_TYPE_DEV.

  uint16_t    bcdUSB              USB specification release
                                  number supported, in bcd.

  uint8_t     bDeviceClass        Class code (see below).

  uint8_t     bDeviceSubClass     Subclass code (see USB 2.0
                                  specification of applicable
                                  device class for information.)

  uint8_t     bDeviceProtocol     Protocol code (see USB 2.0
                                  specification of applicable
                                  device class for information.)

  uint8_t     bMaxPacketSize0     Maximum packet size of
                                  endpoint 0.

  uint16_t    idVendor            vendor ID value.

  uint16_t    idProduct           product ID value.

  uint16_t    bcdDevice           Device release number in
                                  binary coded decimal.

  uint8_t     iManufacturer       Index of optional manufacturer
                                  description string.
                                  Valid if > 0.

  uint8_t     iProduct            Index of optional product
                                  description string.
                                  Valid if > 0.

  uint8_t     iSerialNumber       Index of optional serial
                                  number string.
                                  Valid if > 0.

  uint8_t     bNumConfigurations  Number of available
                                  configurations.


  Device descriptors bDeviceClass values:

  USB_CLASS_PER_INTERFACE         Class information is at
                                  interface level.

  USB_CLASS_COMM                  CDC control device class.

  USB_CLASS_DIAG                  Diagnostic device class.

  USB_CLASS_HUB                   HUB device class.

  USB_CLASS_MISC                  MISC device class.

  USB_CLASS_VENDOR_SPEC           Vendor-specific class.

  USB_CLASS_WIRELESS              Wireless controller
                                  device class.


.fi
.in -2

.SH ATTRIBUTES
See \fBattributes\fR(7) for descriptions of the following attributes:
.sp

.sp
.TS
box;
c | c
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE
_
Architecture	PCI-based systems
_
Interface stability	Committed
.TE

.SH SEE ALSO
.BR attributes (7),
.BR usb_get_alt_if (9F),
.BR usb_get_cfg (9F),
.BR usb_get_dev_data (9F),
.BR usb_get_string_descr (9F),
.BR usb_parse_data (9F),
.BR usb_cfg_descr (9S),
.BR usb_ctrl_request (9S),
.BR usb_dev_qlf_descr (9S),
.BR usb_ep_descr (9S),
.BR usb_if_descr (9S),
.BR usb_other_speed_cfg_descr (9S),
.BR usb_string_descr (9S)
